home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PD Collection CD 1
/
PD Collection CD 1.iso
/
sillies
/
smilies
/
!Smilies
/
SmiliesSrc
< prev
next >
Wrap
Text File
|
1994-07-20
|
5KB
|
241 lines
; Smilies
; by Dave Thomas, © 1992-4
;
; ----------------------------------
; Source for Smilies v1.03 !RunImage
; ----------------------------------
; written for assembly in Eivind Hagen's extASM assembler
;
#name !RunImage
#type &ff8
#base &8000
swi Hourglass_On
bl initialise_wimp
bl load_temps
adr r0,infohand
ldr r1,[r0]
adr r0,subwindow
str r1,[r0]
adr r1,mainhand
ldr r0,[r1]
adr r1,q%
str r0,[r1]
swi Wimp_GetWindowState
mvn r0,#0
str r0,[r1,#28]
swi Wimp_OpenWindow
swi Hourglass_Off
.poll
mov r0,#0
adr r1,q%
swi Wimp_Poll
cmp r0,#20
addlt pc,pc,r0,lsl #2
b poll ; >19 reason code [no action]
b check_for_ctrl ; 0
b redraw_window ; 1
b open_window ; 2
b close_down ; 3
b poll ; 4
b poll ; 5
b mouse ; 6
b poll ; 7
b poll ; 8
b menu_sel ; 9
b poll ; 10
b poll ; 11
b poll ; 12
b poll ; 13
b poll ; 14
b poll ; 15
b poll ; 16
b message ; 17
b message ; 18
b poll ; 19
.check_for_ctrl
mov r0,#121
mov r1,#129
swi OS_Byte
cmp r1,#255
bne poll
adr r1,q%
swi Wimp_GetPointerInfo
adr r2,mainhand
ldr r3,[r2]
ldr r2,[r1,#12]
cmp r2,r3
bne poll
.insert_smiley
mov r0,#4
str r0,[r1,#8]
ldr r2,[r1,#16]
cmp r2,#0
blt poll
swi Interface_SlabButton
ldr r0,[r1,#12]
str r0,[r1,#128]
ldr r0,[r1,#16]
str r0,[r1,#132]
add r1,r1,#128
swi Wimp_GetIconState
sub r1,r1,#128
ldr r3,[r1,#156]
mov r4,r1
.insert_smiley_loop
ldrb r2,[r3]
cmp r2,#13
beq insert_smiley_end
mov r0,#153
mov r1,#0
swi OS_Byte
add r3,r3,#1
b insert_smiley_loop
.insert_smiley_end
mov r1,r4
mov r0,#0
str r0,[r1,#8]
swi Interface_SlabButton
b poll
.open_window
swi Wimp_OpenWindow
b poll
.redraw_window
swi Wimp_RedrawWindow
.redraw_window_loop
cmn r0,#1
bne poll
swi Interface_Render3dWindow
swi Wimp_GetRectangle
b redraw_window_loop
.initialise_wimp
mov r0,#200
adr r2,task
ldr r1,[r2]
adr r2,descript
swi Wimp_Initialise
adr r0,taskh
str r1,[r0]
mov pc,r14
.load_temps
adr r1,tempfile
swi Wimp_OpenTemplate
adr r1,q%
adr r2,indr_data
add r3,r2,#256
mvn r4,#0
adr r5,infoname
mov r6,#0
swi Wimp_LoadTemplate
swi Wimp_CreateWindow
adr r8,infohand
str r0,[r8]
adr r5,mainname
swi Wimp_LoadTemplate
swi Wimp_CreateWindow
adr r8,mainhand
str r0,[r8]
swi Wimp_CloseTemplate
mov pc,r14
.descript
dcb "Smilies",0
align
.task
dcb "TASK"
.taskh
dcd 0
.q%
dbb 556
.indr_data
dbb 256
align
.tempfile
dcb "<Smilies$Dir>.Templates",0
align
.infoname
dcb "prog_info",0
align
.infohand
dcd 0
.mainname
dcb "main",0,0,0,0,0,0,0,0
align
.mainhand
dcd 0
.mouse
ldr r0,[r1,#8]
ldr r2,[r1,#12]
ldr r3,[r1,#16]
adr r5,mainhand
ldr r4,[r5]
cmp r4,r2
bne poll
cmp r0,#4
cmpne r0,#1
beq insert_smiley
cmp r0,#2
beq menu_wind
b poll
.menu_wind
ldr r2,[r1]
sub r2,r2,#48
ldr r3,[r1,#4]
adr r1,menu_block
swi Wimp_CreateMenu
b poll
.menu_sel
ldr r0,[r1]
cmp r0,#1
beq close_down
swi Wimp_GetPointerInfo
ldr r0,[r1,#8]
cmp r0,#1
beq menu_wind
.message
ldr r0,[r1,#16]
cmp r0,#0
bne poll
.close_down
adr r4,taskh
ldr r0,[r4]
adr r4,task
ldr r1,[r4]
swi Wimp_CloseDown
swi OS_Exit
.menu_block
dcb "Smilies",0,0,0,0,0
align
dcd &00070207
dcd 128
dcd 44
dcd 0
dcd 0
.subwindow
dcd -1
dcd &7000001
dcb "Info",0,0,0,0,0,0,0,0
align
dcd &80
dcd -1
dcd &7000001
dcb "Quit",0,0,0,0,0,0,0,0
align